Communications system and method for accessing a server and preventing access blocking and minimizing network traffic

ABSTRACT

A communications system and method includes a database for storing problem magnitudes relating to failed attempts at accessing servers using connection engines. An intelligent routing engine could be a server operative with the database, which queries the database and delays any further attempts at accessing the server using the first connection engine if the problem magnitude exceeds a predetermined threshold. Reattempts can be made after a sufficient delay. A plurality of connection engines can be used by a client for accessing a server. The connection engines are preferably distributed among a plurality of subnets and/or IP addresses and a different connection engine can be chosen based on a desired route with minimum problems.

FIELD OF THE INVENTION

The present invention relates to network communications, and moreparticularly, the present invention relates to accessing Internetservers.

BACKGROUND OF THE INVENTION

The Internet is growing exponentially and temporary network outages arecommonplace on the Internet. A client, whether operating a personalcomputer at home, in a local area network, or from a mobile, wirelessdevice, often attempts access to a server on the Internet (e.g., awebsite, an e-mail server), but fails to connect to the server andinitiate the communications session. After repeated failures inaccessing a server, a user may wait a period of time and try again,perhaps making a successful connection or failing to make a connection.In the case of failing to connect, the server could be actively blockinga connection request. In other instances, however, a “failed” accessattempt will be successful if retried after a sufficient delay. It hasbeen found that sometimes a server may actively block or throttleconnection requests based upon the originating IP address. At othertimes, the server or the Internet connectivity to the server mayencounter intermittent and/or transient failures, including service andnetwork failures.

It is necessary then to distinguish between a permanent or persistenttransient failure in accessing the server, such as by a serverconsistently blocking access, and an intermittent or transient failurecaused by other reasons. If it were possible to monitor every mailserver or other Internet server to be accessed, then it would bepossible to blacklist a particular server or devise a differentconnection engine route for a particular server. It would also beadvantageous if some decision could be automatically made to determinewhen any reattempts should be made at accessing a server, and whether aset period of time should be allowed to pass before reattempting access,or if a different connection engine should be used to initiatecommunication.

SUMMARY OF THE INVENTION

The present claimed invention overcomes problems when temporary networkoutages occur on the Internet and “failed” access attempts are retried.The present invention is also advantageous as an aid to discern whencertain servers may actively block a connection request.

In the present invention, connection engines can be distributed overmultiple subnets and multiple IP addresses to prevent attempts atblocking. A database of failed attempts can be maintained and anintelligent routing server, such as a mobile office platform or otherserver system, could track the magnitude of failures as problemmagnitudes stored in a database. Data can relate to the problemmagnitude versus time for a specific connection engine and webpage orserver. When a server has to be accessed, for example, as when a clientchecks an email server, the database can be consulted to choose aconnection engine having a lower problem magnitude for the server ofinterest. A plurality of engines could be distributed over multipleservers and multiple subnets.

In one aspect of the present invention, a proxy engine, operative withWAP or SMTP, for example, makes a service request to a connectionengine, which uses a POP, IMAP or HTTPmail protocol, for example. Theconnection engine attempts to access the server and, if errors arereceived, the database can store the failure for a particular connectionengine and server pair by assigning a problem magnitude and adding it toa current exponentially decayed database entry along with a time stamp.The connection engine can make a determination of the type of error todistinguish network failures from other types of errors such asincorrect passwords, badly formed requests or similar errors notattributed to network failures. If the problem magnitude is below a setthreshold, the next attempt is made after a sufficient delay. If theproblem magnitude exceeds a threshold, the system will not retry andinstead waits for the problem magnitude to decay to below the thresholdbefore retrying. The delay can be a function of a preset rate of decayof the problem magnitude. A different connection engine with a lowerproblem magnitude for the same server can also be selected in one aspectof the present invention.

In one aspect of the present invention, a communications system includesa database for storing a problem magnitude relating to failed attemptsin accessing a server using the connection engines. An intelligentrouting engine is operative with the database, queries the database anddelays any further attempts at accessing the server using a firstconnection engine if a problem magnitude exceeds a predeterminedthreshold. A communications system can also include a plurality ofconnection engines that can be used by a client for accessing a serverof a server on an Internet Protocol (IP) network. These connectionengines can be distributed among a plurality of subnets and/or IPaddresses and other servers.

A method of the present invention is also disclosed, and in one aspectof the invention, comprises the steps of attempting access to the serverusing a first connection engine, assigning a problem magnitude if theattempt at accessing the server has failed, and delaying any furtherattempts at accessing the server using the first connection engine, ifthe problem magnitude exceeds a predetermined threshold.

In yet another aspect of the present invention, a method of accessing aserver comprises the steps of distributing connection engines overmultiple subnets and/or multiple IP addresses and attempting access toservers using the connection engines. Problem magnitudes are assigned tofailures in accessing any servers. The problem magnitude versus time asrelated to a particular connection engine and server are stored within adatabase and a connection engine chosen which has minimum problems whena particular server is to be accessed. This decision can be based onqueries made to the database. The server could, of course, be an emailprovider or other server.

BRIEF DESCRIPTION OF THE DRAWINGS

Other objects, features and advantages of the present invention willbecome apparent from the detailed description of the invention whichfollows, when considered in light of the accompanying drawings in which:

FIG. 1 is a high level block diagram of a system that includes a networkhaving a number of connection engines distributed among a plurality ofsubnets and/or IP addresses, a database for storing problem magnitudes,and an intelligent routing engine as part of a mail office platform orother gateway that delays repeated attempts at accessing a server orselects a connection engine for use by a client, such as the illustratedwireless device.

FIG. 2 is high level flow chart showing an example of the algorithm thatcan be used in the present invention.

FIG. 3 is another flow chart illustrating a more specific example of amethod used by the present invention.

FIG. 4 is a block diagram of an exemplary hand-held mobile wirelesscommunications device that can be used in the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention will now be described more fully hereinafter withreference to the accompanying drawings, in which preferred embodimentsof the invention are shown. This invention may, however, be embodied inmany different forms and should not be construed as limited to theembodiments set forth herein. Rather, these embodiments are provided sothat this disclosure will be thorough and complete, and will fullyconvey the scope of the invention to those skilled in the art. Likenumbers refer to like elements throughout, and prime notation is used toindicate similar elements in alternative embodiments.

The present invention advantageously overcomes the disadvantages of theprior art, which did not accommodate temporary network outages with“failed” access attempts, did not determine whether reattempts ataccessing at a server should be initiated, and did not determine whetherthe server may have been actively blocking a connection request.

In accordance with the present invention, connection engines can bedistributed over multiple subnets and multiple IP addresses to preventattempts at blocking access or allow alternative uses of connectionengines. A database of failed attempts can be maintained and a problemmagnitude system tracks a magnitude of failure for failed attempts atinitiating a communications session with a server. The database storesthe problem magnitude versus time for a specific connection engine andweb page or server pair. When a server has to be accessed to check anemail account, for example, the database can be consulted to choose aconnection engine with a minimum problem magnitude for the server ofinterest.

In one aspect of the present invention, a plurality of differentconnection engines can be distributed over multiple servers and/ormultiple subnets and/or multiple IP addresses. A proxy engine can beoperative with a Wireless Application Protocol (WAP), Simple MailTransfer Protocol (SMTP) or other protocol. The server can make aservice request to a connection engine, operative, for example, with aPost Office Protocol (POP), an Internet Mail Access Protocol (IMAP),HTTPmail protocol or other similar protocol.

If various errors are received, a database can store this failure for aparticular connection engine and server pair by assigning a problemmagnitude, for example, ten (10), and adding it to a current,exponentially decayed entry in the database along with a time stamp.Different errors can be given a different indicator, such as a 4XX erroras a persistent transient failure, also known as a network failure. A5XX error could include other errors unrelated to network errors, forexample, an incorrect password or badly formed request. If the problemmagnitude is below a predetermined threshold, a new attempt at accesscan be made after a sufficient delay. If a problem magnitude exceeds athreshold, then the system may not retry, and instead, could wait forthe problem to return to below a threshold before retrying. A delaycould be a function of a preset rate of decay of the problem magnitude.Also, if it is determined that a server is blocking or is having otherconnection problems based on an IP address, for example, it is possibleto try a different connection engine.

FIG. 1 shows an overall block diagram of an example of a basiccommunications system 10 and showing examples of the various functionsand components that could be used with the present invention. Asillustrated, a large corporate intranet 12 could include a number ofgateways 14 (although only one is necessary in some instances) operativeas servers and/or routers and connected and operative with varioussubnets 16 and associated servers 16 a. The different subnets 16 can beoperative with various email clients, systems and/or servers 16 b, asnon-limiting examples.

It should be understood that a subnet 16 as used herein can correspondto a portion of a network, such as the illustrated intranet 12 having acommon address component, but subdivided into separate parts orsegments. A single shared network address can allow different computersand clients to be connected to the Internet with a single shared networkaddress. It is also possible to have multiple connections to theInternet with different IP addresses, but a shared address could be usedfor certain areas of the network, each having subnets.

It should also be understood that any portion of an IP address couldrepresent a network number or address and some portion could representlocal machine addresses as a host number or address. For example, it ispossible to use 16 bits for a network number and 16 bits for a hostnumber. With subnets, some portion of the host address is used for asubnet address. For example 8 bits could be used, but in other schemes,using only part of a third quad or fourth quad could be used. The subnetmask is used to determine what subnet and IP address it belongs and actsas a screen for the numbers to tell which numbers to look at underneathfor routing.

The intranet 12 can include one or more gateways 14, each acting as anetwork point as an entrance to the Internet 18 or to a server operativeas a mobile office platform in this non-limiting example. The gatewayscould also be an entrance to other networks and/or act as a node or host(end-point) node. The gateways 14 could also be an Internet serviceprovider (ISP), and could be operative as a proxy server and/or afirewall server, and also be associated with a router.

FIG. 1 illustrates the mobile office platform 20 as a server thatincludes various functions, including software engines operative as anintelligent routing engine 20 a and proxy agent 20 b, and performingother functions, including that of an electronic mail agent for varioussource mailboxes 22. It should be understood that the gateways 14 of theintranet 12 could also be operative as intelligent routing engines andInternet service providers (ISP's) as shown by the dotted linesconnecting the mobile office platform 20 with the gateways 14.

As illustrated, a wireless device 24, such as a hand-held Blackberryunit, includes a mail user agent 26 operative with the server acting asa mobile office platform 20. The device 22 is also operative with theintranet gateways 14. The wireless device is only one example of a usersystem. Other systems, including a personal computer or other mobiledevice, can be operative with the present invention.

The mobile office platform 20 is operative as a mailbox interface moduleand includes the intelligent routing engine and a mail agent thatcommunicates with source mailboxes 22. The wireless device 24 isoperative as a mail user agent 26 and could include various emailclients, which in this example, correspond to an outlook mail client 28a, an outlook express mail client 28 b, and a proprietary mail client 28c (client X), each associated with respective source mailboxes. Themail user agent 26 could also include mailbox configuration data 30 foreach of the email clients 28 a-c. It should be understood that thevarious email clients could be located on different agent systems aspart of one or more wireless devices, as illustrated by the second agentsystem 32, each having a mail user agent.

In this example, the mail user agent 26 is operative with the mobileoffice platform 20 acting as an agent for the wireless device 24 tosource mailboxes 22 and also as an agent to the Internet 18. The mailuser agent 26 could also be operative with any of the gateways 14 of theintranet 12, depending on the configuration of the gateways and use ofany gateway as an ISP. The source mailboxes could be located on theInternet 18, a corporate intranet 34, or both. The mail user agent couldalso be operative with different email systems in the Internet. Themobile office platform 20 can act as an agent, performing variousfunctions, including various functional and validator modules. It shouldalso be understood that some of the functions of the mobile officeplatform as an agent can also be downloaded to a user system andoperative by a user, as when inputting information into a mobile deviceor home computer.

As illustrated, the mobile office platform 20 is operative with adatabase 36 for storing problem magnitudes relating to failed attemptsat accessing servers using connection engines. In the present invention,a plurality of connection engines can be used by a client, for example,operative on the mobile, wireless device 24. These connection enginesare preferably distributed among the subnets 16 and/or IP addressesthrough the various gateways 14 and subnets 16. The database 36 canstore a problem magnitude versus time relating to a particularconnection engine and associated servers after attempts have been madeto access servers using the connection engines and problem magnitudeshave been assigned to any failures in accessing the servers. Aconnection engine with minimum problems can be selected by theintelligent routing engine 20 a when a particular server is to beaccessed based on stored data within the database 36.

The database 36 could also include data relating to a current problemmagnitude for a failed access to a server that is added to a currentexponentially decayed entry related to a problem magnitude for accessingthe server. The database 36 could include data relating to a problemmagnitude versus time for any server and connection engine pair. Problemmagnitudes can be assigned for an error based on network failures orother failures unrelated to a network failure, such as an incorrectpassword and/or poorly formed request. The intelligent routing engine 20a could be operative with a proxy server module 20 b. A service requestcould be made using a wireless application protocol (WAP) or simple mailtransfer protocol (SMTP). Attempts to access a server could be madeusing POP, IMAP or HTTPmail protocol.

It should be understood that the wireless application protocol (WAP) isoperative with mobile devices and typically includes a mini-browser withrequests sent to a gateway or other server using WAP. The gateway couldretrieve information via HTTP from a server and encode the HTTP datawith the wireless mark-up language (WML). The WML-encoded data is sentto the wireless device. The wireless application protocol stack caninclude a wireless application environment to hold tools that wirelessInternet content developers use. It can include a wireless sessionprotocol to determine whether a session between a device and a networkwill be connection oriented or connectionless. A wireless transactionprotocol maintains data flow and is operative with a wireless transportlayer security to provide security features such as found in thetransport layer security (TLS) portion of TCP/IP. A wireless datagramprotocol works in connection with a network carrier layer as a bearer.

FIG. 2 is a high level block diagram showing an example of the method ofthe present invention. As illustrated, connection engines aredistributed over multiple subnets and/or multiple IP addresses (block100). Access to servers is attempted using the connection engines (block102). Problem magnitudes are assigned to failures in accessing servers(block 104). The problem magnitude versus time relating to a particularconnection engine and server are stored within a database (block 106). Aconnection engine having minimum problems when a particular server is tobe accessed is chosen based on stored data within the database (block108). If attempts to access a server still fail after repeated attempts(block 110), another connection engine can be chosen if the problemmagnitude exceeds a predetermined threshold or any further attempts ataccessing a server can be delayed using a first connection engine, ifthe problem magnitude exceeds the threshold (block 112).

FIG. 3 shows a specific example that can be used for the method of thepresent invention. A proxy engine can use WAP, SMTP or other protocoland make a service request to a connection engine, which uses POP, IMAPor HTTPmail protocol (block 200). The connection engine attempts toaccess the server (block 202). The database stores the type of error fora particular connection engine and server pair and assigns a problemmagnitude (block 204). It then adds the problem magnitude to the currentexponentially decayed entry in the database along with a time stamp(block 206). If the problem magnitude is below a predetermined threshold(block 208), the next attempt to access the server is made after asufficient delay (block 210). If the problem magnitude exceeds apredetermined threshold, the system will not retry and instead waits forthe problem to return below the predetermined threshold before retrying(block 212). This delay could be a function of a preset rate of decay ofthe problem magnitude. Thresholds can be chosen as required. Also,different connection engines can be chosen.

It should be understood that the software and programming used for thepresent invention can vary, and different applications can be used. Themobile office platform 20 and other gateways can use web servicestechnology and include different application services used by thoseskilled in the art. Web services could include a combination ofprogramming and data, which are available from a web server for webusers, or the use of other web-connected programs as provided by anapplication service provider. Web services could use an extensiblemark-up language (XML) as a standard for formatting data to becommunicated.

Any type of arrangement can be used to access the mobile office platform20 or other gateways, including a peer-to-peer arrangement, a centralserver, or other architecture and line or wireless communications. Also,middleware could be used. Data formats could be standardized and dataexchanged using the extensive mark-up language (XML), which is afoundation for the web services description language (WSDL). Differentweb servers could be used, including the open source Apache orMicrosoft's Internet information server (IIS). Other web services couldinclude Novel's web server for users of its netware operating system orthe IBM family of Lotus domino service, for example, for IMB's OS/390and AS/400 customers. Naturally, any web server should be able todownload requests for file transfer protocol (FTP) files in a preferredembodiment.

The mobile office platform 20 or other gateways can have various importagents that are designed to retrieve configuration data from emailclients, including Eudora and Netscape besides the Outlook and OutlookExpress email clients as illustrated. The mobile office platform orother gateways could include a Messaging Application ProgrammingInterface (MAPI) to retrieve any configuration data for a MAPI-compliantemail client. MAPI provides the application programming interface (API)to ensure system independence for messaging applications. A layer offunctionality could be provided between applications at any underlyingmessaging systems and act as messaging middleware. MAPI-compliantapplications could communicate through a MAPI subsystem to MAPI serviceproviders that perform requested actions for clients and pass data backthrough a MAPI system to a MAPI client. Any mailbox configuration datacould reside in a configuration registry of the user system. In otherexample embodiments, data could reside in email client specificconfiguration storage.

In the user system, the Microsoft Outlook Express mail client can accesssource mailboxes that use the Post Office Protocol (POP) or InternetMail Access Protocol (IMAP). POP, of course, is the Internet mail serverprotocol that provides incoming message storage. The more recentprotocol is POP3. POP is operative with a Simple Mail Transfer Protocol(SMTP). Any mail server could run both protocols if it is to receive,store and forward messages. The SMTP protocol exchanges messages fromone mail server to another and hands messages to the required POP serverfor an email mailbox. A POP server can receive a message and hold ituntil another POP server is available. The IMAP version 4 also uses theSMTP transport mechanism, but it is a more flexible protocol becauseIMAP allows users to store mail on a mail server without downloading allnew messages to a local machine. Internet mail services, of course, runSMTP and either POP or IMAP and receive incoming messages from anysource without identity checking. Thus, mail can be selectivelydownloaded and read, message headers reviewed, hierarchical messagestores built, an address book supported, and documents linked,authenticated and searched.

The mobile office platform or other gateway could generate configurationdata objects and format data objects using an extensible mark-uplanguage (XML) for submission to various XML-compliant web services. Theserver and/or web service could be a simple object access protocol(SOAP) compliant service.

XML, of course, as an extensive mark-up language, is a subset of thestandard generalized mark-up language (SGML) and would allow data to bestored and published on servers and be richer in presentation. Customtags could be created to define the content of documents. Commoninformation formats could be created and the format and data shared onthe Internet, corporate Internets and/or other networks. The mark-upsymbols in XML could be unlimited and self-defining. The channeldefinition format (CDF) could describe any channel and a specific CDFfile can contain data that specifies an initial web page and how it canbe updated.

SOAP allows one program running in one kind of operating system tocommunicate with the program in the same or another type of operatingsystem by using HTTP and XML for information exchange. SOAP couldspecify how to encode an HTTP header in an XML file, thus, allowing onecomputer to call a program in another computer and pass data, while alsodictating how it can return a response. SOAP is advantageous to allowdata to pass through firewall servers that screen-out requests otherthan those for known applications to a designated port. SOAP is anXML-based protocol that has at least three parts, including: (a) anenvelope to define a framework for describing what is in a message; (b)a set of encoding rules for expressing application-defined data types;and (c) a convention for representing remote procedure calls andresponses.

The mobile office platform 20 or other gateway could include softwarethat is implemented as an ActiveX control as a component object model(COM) and provide a framework for building software components thatcommunicate with each other. ActiveX controls could be automaticallydownloaded and executed by a web browser. Distributed objectapplications could be built in active web pages and ActiveX controlscould be downloaded to different browsers and clients. ActiveX controlscould be held in a web browser as a container and distributed over anInternet or corporate intranet. ActiveX controls could also manage andupdate web content and client systems and work closely with a userinterface of a targeted operating system. Java applets or similarcomponent objects could also be used instead of ActiveX controls. Itshould be understood for purposes of the present invention that anobject model control could also be any type of dynamic link library(DLL) module that runs in a container as an application program using acomponent object model program interface.

An exemplary hand-held mobile wireless communications device 1000 thatcan be used in the present invention is further described in the examplebelow with reference to FIG. 4. The device 1000 includes a housing 1200,a keyboard 1400 and an output device 1600. The output device shown is adisplay 1600, which is preferably a full graphic LCD. Other types ofoutput devices may alternatively be utilized. A processing device 1800is contained within the housing 1200 and is coupled between the keyboard1400 and the display 1600. The processing device 1800 controls theoperation of the display 1600, as well as the overall operation of themobile device 1000, in response to actuation of keys on the keyboard1400 by the user.

The housing 1200 may be elongated vertically, or may take on other sizesand shapes (including clamshell housing structures). The keyboard mayinclude a mode selection key, or other hardware or software forswitching between text entry and telephony entry.

In addition to the processing device 1800, other parts of the mobiledevice 1000 are shown schematically in FIG. 4. These include acommunications subsystem 1001; a short-range communications subsystem1020; the keyboard 1400 and the display 1600, along with otherinput/output devices 1060, 1080, 1100 and 1120; as well as memorydevices 1160, 1180 and various other device subsystems 1201. The mobiledevice 1000 is preferably a two-way RF communications device havingvoice and data communications capabilities. In addition, the mobiledevice 1000 preferably has the capability to communicate with othercomputer systems via the Internet.

Operating system software executed by the processing device 1800 ispreferably stored in a persistent store, such as the flash memory 1160,but may be stored in other types of memory devices, such as a read onlymemory (ROM) or similar storage element. In addition, system software,specific device applications, or parts thereof, may be temporarilyloaded into a volatile store, such as the random access memory (RAM)1180. Communications signals received by the mobile device may also bestored in the RAM 1180.

The processing device 1800, in addition to its operating systemfunctions, enables execution of software applications 1300A-1300N on thedevice 1000. A predetermined set of applications that control basicdevice operations, such as data and voice communications 1300A and1300B, may be installed on the device 1000 during manufacture. Inaddition, a personal information manager (PIM) application may beinstalled during manufacture. The PIM is preferably capable oforganizing and managing data items, such as e-mail, calendar events,voice mails, appointments, and task items. The PIM application is alsopreferably capable of sending and receiving data items via a wirelessnetwork 1401. Preferably, the PIM data items are seamlessly integrated,synchronized and updated via the wireless network 1401 with the deviceuser's corresponding data items stored or associated with a hostcomputer system. Communication functions, including data and voicecommunications, are performed through the communications subsystem 1001,and possibly through the short-range communications subsystem. Thecommunications subsystem 1001 includes a receiver 1500, a transmitter1520, and one or more antennas 1540 and 1560. In addition, thecommunications subsystem 1001 also includes a processing module, such asa digital signal processor (DSP) 1580, and local oscillators (LOs) 1601.The specific design and implementation of the communications subsystem1001 is dependent upon the communications network in which the mobiledevice 1000 is intended to operate. For example, a mobile device 1000may include a communications subsystem 1001 designed to operate with theMobitex™, Data TAC™ or General Packet Radio Service (GPRS) mobile datacommunications networks, and also designed to operate with any of avariety of voice communications networks, such as AMPS, TDMA, CDMA, PCS,GSM, etc. Other types of data and voice networks, both separate andintegrated, may also be utilized with the mobile device 1000.

Network access requirements vary depending upon the type ofcommunication system. For example, in the Mobitex and DataTAC networks,mobile devices are registered on the network using a unique personalidentification number or PIN associated with each device. In GPRSnetworks, however, network access is associated with a subscriber oruser of a device. A GPRS device therefore requires a subscriber identitymodule, commonly referred to as a SIM card, in order to operate on aGPRS network.

When required network registration or activation procedures have beencompleted, the mobile device 1000 may send and receive communicationssignals over the communication network 1401. Signals received from thecommunications network 1401 by the antenna 1540 are routed to thereceiver 1500, which provides for signal amplification, frequency downconversion, filtering, channel selection, etc., and may also provideanalog to digital conversion. Analog-to-digital conversion of thereceived signal allows the DSP 1580 to perform more complexcommunications functions, such as demodulation and decoding. In asimilar manner, signals to be transmitted to the network 1401 areprocessed (e.g. modulated and encoded) by the DSP 1580 and are thenprovided to the transmitter 1520 for digital to analog conversion,frequency up conversion, filtering, amplification and transmission tothe communication network 1401 (or networks) via the antenna 1560.

In addition to processing communications signals, the DSP 1580 providesfor control of the receiver 1500 and the transmitter 1520. For example,gains applied to communications signals in the receiver 1500 andtransmitter 1520 may be adaptively controlled through automatic gaincontrol algorithms implemented in the DSP 1580.

In a data communications mode, a received signal, such as a text messageor web page download, is processed by the communications subsystem 1001and is input to the processing device 1800. The received signal is thenfurther processed by the processing device 1800 for an output to thedisplay 1600, or alternatively to some other auxiliary I/O device 1060.A device user may also compose data items, such as e-mail messages,using the keyboard 1400 and/or some other auxiliary I/O device 1060,such as a touchpad, a rocker switch, a thumb-wheel, or some other typeof input device. The composed data items may then be transmitted overthe communications network 1401 via the communications subsystem 1001.

In a voice communications mode, overall operation of the device issubstantially similar to the data communications mode, except thatreceived signals are output to a speaker 1100, and signals fortransmission are generated by a microphone 1120. Alternative voice oraudio I/O subsystems, such as a voice message recording subsystem, mayalso be implemented on the device 1000. In addition, the display 1600may also be utilized in voice communications mode, for example todisplay the identity of a calling party, the duration of a voice call,or other voice call related information.

The short-range communications subsystem enables communication betweenthe mobile device 1000 and other proximate systems or devices, whichneed not necessarily be similar devices. For example, the short-rangecommunications subsystem may include an infrared device and associatedcircuits and components, or a Bluetooth™ communications module toprovide for communication with similarly-enabled systems and devices.

Many modifications and other embodiments of the invention will come tothe mind of one skilled in the art having the benefit of the teachingspresented in the foregoing descriptions and the associated drawings.Therefore, it is understood that the invention is not to be limited tothe specific embodiments disclosed, and that modifications andembodiments are intended to be included within the scope of the appendedclaims.

1. A communications system comprising: a database for storing problemmagnitudes relating to failed attempts at accessing servers usingconnection engines; and an intelligent routing engine operative with thedatabase for querying the database and delaying any further attempts ataccessing the server when the problem magnitude exceeds a predeterminedthreshold.
 2. A communications system according to claim 1, wherein saidintelligent routing engine is operative for delaying any reattempts ataccessing a server until a problem magnitude returns to below apredetermined threshold.
 3. A communications system according to claim2, wherein any delay in reattempting access to the server is a functionof a preset rate of decay of a problem magnitude.
 4. A communicationssystem according to claim 1, wherein said database includes datarelating to a current problem magnitude for a failed access to a serverthat is added to a current exponentially decayed entry in the database.5. A communications system according to claim 1, wherein said databaseincludes data relating to a problem magnitude versus time for any serverand connection engine pair.
 6. A communications system according toclaim 1, wherein a problem magnitude is assigned for an error based onnetwork failures.
 7. A communications system according to claim 1,wherein a problem magnitude is assigned for an error based on failuresunrelated to a network failure.
 8. A communications system according toclaim 7, wherein any failures unrelated to a network failure include anincorrect password and/or poorly formed request.
 9. A communicationssystem according to claim 1, wherein said intelligent routing enginecomprises a proxy server.
 10. A communications system according to claim1, wherein said intelligent routing engine is operative for accessing aserver using a POP, IMAP or httpmail protocol.
 11. A communicationssystem comprising: a plurality of connection engines that can be used bya client for accessing a server of a server on an Internet Protocol (IP)network, wherein said connection engines are distributed among aplurality of subnets and/or IP addresses; a database for storing aproblem magnitude versus time relating to a particular connection engineand server after attempts had been made to access servers using theconnection engines and problem magnitudes had been assigned to failuresin accessing the servers; and an intelligent routing engine operativewith the database for selecting a connection engine with minimumproblems when a particular server is to be accessed based on stored datawithin the database.
 12. A communications system according to claim 11,wherein said intelligent routing engine is operative for delaying anyreattempts at accessing a server until a problem magnitude returns tobelow a predetermined threshold.
 13. A communications system accordingto claim 12, wherein any delay in reattempting access to a server is afunction of a preset rate of decay of a problem magnitude.
 14. Acommunications system according to claim 11, wherein said databaseincludes data relating to a current problem magnitude for a failedaccess to a server that is added to a current exponentially decayedentry in the database.
 15. A communications system according to claim11, wherein said database includes data relating to a problem magnitudeversus time for any server and connection engine pair.
 16. Acommunications system according to claim 11, wherein a problem magnitudeis assigned for an error based on network failures.
 17. A communicationssystem according to claim 11, wherein a problem magnitude is assignedfor an error based on failures unrelated to a network failure.
 18. Acommunications system according to claim 17, wherein any failuresunrelated to a network failure include an incorrect password and/orpoorly formed request.
 19. A communications system according to claim11, wherein said intelligent routing engine comprises a proxy server.20. A communications system according to claim 11, wherein saidintelligent routing engine is operative for accessing the server usingPOP, IMAP or httpmail protocol.
 21. A method of accessing a server of aserver on an Internet Protocol (IP) network comprising the steps of:attempting access to a server using a first connection engine; assigninga problem magnitude if the attempt at accessing the server has failed;and delaying any further attempts at accessing the server when theproblem magnitude exceeds a predetermined threshold.
 22. A methodaccording to claim 21, and further comprising the step of delaying anyreattempts at accessing the server until the problem magnitude returnsto below a predetermined threshold.
 23. A method according to claim 22,wherein the delay in reattempting access to the server is a function ofa preset rate of decay of the problem magnitude.
 24. A method accordingto claim 21, and further comprising the step of maintaining a databaseof failed attempts at accessing the server.
 25. A method according toclaim 24, wherein a current problem magnitude for a failed access to aserver is added to a current exponentially decayed entry in the databasealong with a time stamp.
 26. A method according to claim 24, and furthercomprising the step of storing in the database the problem magnitudeversus time for any server and connection engine pair.
 27. A methodaccording to claim 24, and further comprising the step of tracking themagnitude of failure based on the problem magnitude of failed attemptsstored within the database.
 28. A method according to claim 21, andfurther comprising the step of assigning a problem magnitude for anerror based on network failures.
 29. A method according to claim 21, andfurther comprising the step of assigning a problem magnitude for anerror based on failures unrelated to a network failure.
 30. A methodaccording to claim 29, wherein a failure unrelated to a network failureincludes an incorrect password and/or poorly formed request.
 31. Amethod according to claim 21, and further comprising the step of makinga service request to the connection engine using a proxy engine.
 32. Amethod according to claim 31, and further comprising the step of makinga service request using a Wireless Application Protocol (WAP) or SimpleMail Transfer Protocol (SMTP).
 33. A method according to claim 31, andfurther comprising the step of attempting access to a server using aPOP, IMAP, or httpmail protocol.
 34. A method according to claim 21, andfurther comprising the step of choosing a second connection engine andattempting access to the server after failing access with the firstconnection engine.
 35. A method of accessing a server of a server on anInternet Protocol (IP) network comprising the steps of: distributingconnection engines over multiple subnets and/or multiple IP addresses;attempting access to servers using the connection engines; assigningproblem magnitudes to failures in accessing any servers; storing theproblem magnitude versus time relating to a particular connection engineand server within a database; and choosing a connection engine havingminimum problems when a particular server is to be accessed based on thedata stored within the database.
 36. A method according to claim 35, andfurther comprising the step of distributing the connection engines overmultiple servers.
 37. A method according to claim 35, wherein a currentproblem magnitude for a failed access to a server is added to a currentexponentially decayed entry in the database along with a time stamp. 38.A method according to claim 35, and further comprising the step ofterminating any further attempts at accessing a server using a firstconnection engine if a problem magnitude exceeds a predeterminedthreshold.
 39. A method according to claim 38, and further comprisingthe step of delaying any reattempts at accessing the server until aproblem magnitude returns to below a predetermined threshold.
 40. Amethod according to claim 39, wherein the delay in reattempting accessto the server is a function of a preset rate of decay of the problemmagnitude.
 41. A method according to claim 35, and further comprisingthe step of assigning a problem magnitude for an error based on networkfailures.
 42. A method according to claim 35, and further comprising thestep of assigning a problem magnitude for an error based on failuresunrelated to a network failure.
 43. A method according to claim 42,wherein a failure unrelated to a network failure includes an incorrectpassword and/or poorly formed request.
 44. A method according to claim35, and further comprising the step of making a service request to aconnection engine using a proxy engine.
 45. A method according to claim44, and further comprising the step of making a service request using aWireless Application Protocol (WAP) or Simple Mail Transfer Protocol(SMTP).
 46. A method according to claim 44, and further comprising thestep of attempting access to the server using POP, IMAP, or httpmailprotocol.
 47. A method according to claim 35, and further comprising thestep of choosing a second connection engine and attempting access to theserver after attempting access to the server with the first connectionengine has failed.